package com.newtouch.bxzs.business.train.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.newtouch.bxzs.business.train.model.bo.KnowledgeCardAppBO;
import com.newtouch.bxzs.business.train.model.bo.KnowledgeCardBO;
import com.newtouch.bxzs.business.train.model.vo.KnowledgeCardAppVO;
import com.newtouch.bxzs.business.train.model.vo.NewKnowledgeCardVO;

import java.util.List;

/**
 * 知识卡片逻辑层
 *
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2021/1/6 13:38</td>
 * <td>lingshouyi</td>
 * <td>Create</td>
 * </tr>
 * </table>
 *
 * @author lingshouyi
 * @version 1.0.0
 * @since 1.0.0
 */
public interface KnowledgeCardService {

    /**
     * 查看知识卡片通知信息
     *
     * @return 通知列表信息
     */
    List<KnowledgeCardAppBO> getKnowledgeCardNoticeList();

    /**
     * 查询知识卡片列表信息
     *
     * @param knowledgeCardAppVO 查询条件VO
     * @return 知识小灵通列表信息
     */
    IPage<KnowledgeCardAppBO> getKnowledgeCardList(KnowledgeCardAppVO knowledgeCardAppVO, Boolean flag);


    /**
     * APP端,PC端查看知识卡片详情
     *
     * @param knowledgeCardId 知识卡片ID
     * @return 知识卡片详情
     */
    KnowledgeCardBO getKnowledgeCardDetail(String knowledgeCardId);

    /**
     * 新增或者修改知识卡片
     *
     * @param newKnowledgeCardVO 录入项
     * @return 新增返回当前新增的知识卡片ID
     */
    String modifyKnowledgeCard(NewKnowledgeCardVO newKnowledgeCardVO);

    /**
     * 发布或撤销知识卡片
     *
     * @param knowledgeCardId 传入知识卡片ID
     * @param publishStatus   状态
     */
    Integer changeKnowledgeCardState(String knowledgeCardId, String publishStatus);

    /**
     * 逻辑删除或者逻辑批量删除知识卡片
     *
     * @param knowledgeCardIds 知识卡片Id集合
     */
    Integer deleteKnowledgeCard(List<String> knowledgeCardIds);

}
